package com.study.web.redisCache;

import com.study.service.MenuService;
import com.study.utils.SysUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 2020年4月23日19:44:49
 * 1 引入依赖
 * 2 配置 CacheAutoConfiguration|CacheProperties 配置了可以配置的属性
 * CacheConfigurationImportSelector 选择器 org.springframework.boot.autoconfigure.cache.CacheConfigurations#MAPPINGS
 * RedisCacheConfiguration
 * <span/> （1） 自动配置  CacheAutoConfiguration 会导入 RedisCacheConfiguration。自动配置了 缓存管理器RedisCacheManager
 * org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration#createConfiguration(org.springframework.boot.autoconfigure.cache.CacheProperties, java.lang.ClassLoader)
 * <span/>（2）
 * 3 测试使用缓存
 *
 * @Cacheable//触发将数据保存到缓存的操作
 * @CacheEvict//触发将数据从缓存删除的操作
 * @CachePut//不影响方法执行更新缓存
 * @Caching//组合以上多个操作
 * @CacheConfig//在类级别共享 缓存相同配置
 * 4 开启缓存|@EnableCaching
 */
@Slf4j
@Controller
@RequestMapping("chache")
public class CacheController {

    @Autowired
    MenuService menuService;

    @GetMapping("del")
    @ResponseBody
    public String delCache() {
        menuService.menuDelcache();
        return SysUtils.getDateStr();
    }
}
